﻿#define _CRT_SECURE_NO_WARNINGS
//作者：爱吃糖的boy
#include<stdio.h>
#include<math.h>

//int main()
//{
//	double a = 16.0;
//	double b = sqrt(a);
//	printf("a的平方根=%.3lf",b);
//	return 0;
//
//}

//int add(int a, int b) 
//{
//	return a + b;
//}
//int main() 
//{	
//	int a, b;
//	scanf("%d %d",&a,&b);
//	printf("结果=%d ",a+ b);
//	return 0;
//}
//void setarr(int arr[], int a);
//void print(int arr[], int a);
//int main() 
//{
//	int arr1[10] = {1,2,3,4,5,6,7,8,9,10};
//	int sz = sizeof(arr1) / sizeof(arr1[0]);
//
//	setarr(arr1,sz);
//	print(arr1,sz);
//	
//	return 0;
//}
//
//void setarr(int arr[], int a)
//{
//	int i;
//	for ( i = 0; i < a; i++)
//	{
//		arr[i] = -1;
//	}
//}
//void print(int arr[], int a)
//{
//	for (int i = 0; i < a; i++)
//	{
//		printf("arr1[%d]=%d\n",i,arr[i]);
//	}
//}

//int is_leap_year(int y)
//{
//	if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
//		return 1;
//	else
//		return 0;
//}
//
//int get_days_of_month(int y, int m)
//{
//	int days[] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
//	int day = days[m];
//	if (is_leap_year(y) && m == 2)
//		day += 1;
//
//	return day;
//}
//
////假设我们计算某年某⽉有多少天？，如果要函数实现，可以设计2个函数:
////• is_leap_year()：根据年份确定是否是闰年
////• get_days_of_month()：调⽤is_leap_year确定是否是闰年后，再根据⽉计算这个⽉的天数
//int main()
//{
//	int y = 0;
//	int m = 0;
//	scanf("%d %d", &y, &m);
//	int d = get_days_of_month(y, m);
//	printf("%d\n", d);
//	return 0;
//}

//判断⼀年是不是闰年
//int is_leap_year(int y);
//int main()
//{
//	int y = 0;
//	scanf("%d", &y);
//	int r = is_leap_year(y);
//	if (r == 1)
//		printf("闰年\n");
//	else
//		printf("⾮闰年\n");
//	return 0;
//}
//int is_leap_year(int y)
//{
//	if (((y % 4 == 0) && (y % 100 != 0)) || (y % 400 == 0))
//		return 1;
//	else
//		return 0;
//}

#include "add.h"
//int main()
//{
//	int a = 10;
//	int b = 20;
//	int c= add(a, b);
//	printf("%d",c);
//	return 0;
//}
//写一个二分查找函数
//
//功能：在一个升序数组中查找指定的数值，找到了就返回下标，找不到就返回 - 1.
int bin_search(int arr[], int left, int right, int key);
// arr 是查找的数组
//left 数组的左下标
//right 数组的右下标
//key 要查找的数字

int main() 
{
	int arr1[10] = {1,2,3,4,5,6,7,8,9,10};
	int KEY;
	printf("要查找的数字：\n");
	scanf("%d",&KEY);
	int c =bin_search(arr1, 0, 9, KEY);
	printf("位置是%d ",c);
	return 0;
}

int bin_search(int arr[], int left, int right, int key) 
{
	while (left <= right)
	{
		if (key > arr[(left + right + 1) / 2])
		{
			left = (left + right + 1) / 2;
		}
		else if (key < arr[(left + right + 1) / 2])
		{
			right = (left + right + 1) / 2;
		}
		else
		{
			return (left + right + 1) / 2;
		}
	}
	return -1;
}